Video compression is an integral component in many of today's most popular devices, such as set-top boxes, digital satellite systems, high definition television, digital versatile disk players, and other video applications. Files containing video content are typically large cumbersome files due to the many details involved in video content. Thus, to make video content manageable, picture streams comprising video content are often compressed into a more manageable size. This process allows these popular technologies utilizing video content to operate at an increased rate of efficiency, resulting in a more pleasant experience for the end-user by allowing microprocessing capacity to be dedicated to quality of service processing instead of maintenance processing.
Video content typically comprises one or more groups of pictures, each of which are a collection of pictures comprised of one or more macroblocks. Each of the pictures in the group of pictures are either I (intra-coded) pictures, B (bi-directional) pictures, or P (predicted) pictures. Furthermore, each individual group of pictures is defined by the collection of pictures beginning at a first I frame and ending at the frame previous to the next I frame.
FIG. 1 is a simplified block diagram illustrating a group of pictures under the MPEG 2 standard. I pictures, shown as pictures 106 and 124 in FIG. 1, are pictures that are compressed utilizing intra-picture coding. Intra-picture coding is a compression method that does not utilize any reference pictures. A reference picture is a picture used as a reference to estimate motion in a picture for compression purposes. Because of this characteristic of I pictures, a group of pictures can easily be directly accessed at any I picture, such as I picture 106, without regard to the content of any previous pictures, such as pictures 102 or 104. Thus, this characteristic of I pictures allows direct access into the group of pictures at any I picture, such as 106 or 124, without any adverse effects on decompression of the video content due to lost past reference pictures.
B pictures and P pictures, on the other hand, do utilize reference pictures in the compression process. B pictures are pictures in an MPEG group of picture sequence that are created by comparing the difference between the current picture and a previous or future picture. On the other hand, P pictures are constructed by analyzing only previous pictures and determining where objects will are in the current pictures. P pictures can predict where static and dynamic parts of the picture are located. This information is then used in the MPEG-2 decoding process to optimize motion transitions.
In MPEG-2, P pictures are coded relative to the nearest preceding I or P picture by using motion prediction processing. Thus, in MPEG-2, P picture 112 may reference I picture 106 via reference path 126. B pictures in MPEG-2 use the closest past I or P picture as a reference, and also use the closest future I or P picture as a reference. Thus, B picture 108 may reference I picture 106 via reference path 128 or P frame 112 via reference path 130.
Even though both B and P pictures utilize reference picture in past, compressing the group of pictures under MPEG-2 does not necessarily prevent random access into the group of pictures. Random access is access into the group of pictures at a random point. Random access is required to support such functions as changing channels and commercial insertion applications. Random access is still possible because at any given point, only one picture behind the current picture could potentially be referenced by a future picture. Thus, in MPEG-2, the location of a P picture with respect to an I picture is irrelevant to the encoder.
However, with the introduction of MPEG-4 Part 10 Advanced Video Coding (AVC)/H.264 (hereinafter referred to as “AVC”) comes the utilization of multiple reference pictures for P pictures. Whereas this utilization of multiple reference pictures increases the degree to which the group of pictures can be compressed, problems arise when attempting random access into the group of pictures. For example, if random access is attempted at any I picture, a lost reference picture before I picture may potentially be used as a reference for future pictures after the access point. This lost reference picture is a reference picture that is unavailable when decoding a future picture because of its location temporally behind the access point. Therefore, because of the unavailability of the lost reference picture, the decoder will be unable to decode future pictures properly. Furthermore, future pictures which refer to the lost reference picture may also serve as reference pictures further in the future. Thus, the lost reference picture ultimately creates a chain of pictures that will be improperly decoded, resulting in poor quality of service or loss of viewable video.
For example, referring now to the exemplary AVC group of pictures as shown in FIG. 2, P pictures in AVC may utilize up to 2 past reference pictures. Some groups of pixels in P picture 212 may use I picture 206 as reference via reference path 226, while other groups of pixels in the same P picture 212 may use P picture 200 as reference via reference path 228. If random access is attempted at I picture 206, I picture 206 will be properly decoded because I picture 206 does not reference any other pictures as references due to the nature of I pictures. However, P picture 212 will not be properly decoded because P picture 212 references P picture 200, which is not available due to its location before the random access point 206. Furthermore, future pictures such as 214, 216, and 218 will also be improperly decoded because of the unavailability of P picture 212. Thus, the decoder will improperly decode the entire group of pictures after the access point.
A reference picture, such as P picture 212, that is unavailable during the decoding process because of its location before an access point will hereinafter be referred to as a “lost reference picture.” The ultimate effect of lost reference pictures on the decoded video content prohibits features supported by random access, such as changing channels, video editing, and commercial insertion applications. Furthermore, once decoded, the group of pictures results in poor quality of service or loss of viewable video.
Thus, there is a need for an apparatus and method for restructuring a group of pictures to provide for successful random access into the group of pictures. There is also a need for such a method and system providing for random access into the group of pictures that results in minimal distortion to the resulting video content by maintaining a the coding efficiency in the group of pictures.